#include "accelerometer.h"

Accelerometer::Accelerometer(QObject *parent,QString port) : QObject(parent)
{
    serial_frame = "";
	portReader = new QSerialPort;//使用串口操作类，portReader是我的私有变量
    qDebug()<<"port:"<<port;
	portReader->setPortName(port);//*ui->lineEdit->text ()是我的串口名，使用的时候，读者自行换成自己的名字，COM1 COM2神马的随意哈~*/
	portReader->open (QIODevice::ReadOnly);//打开串口，这里我是只读的方式，也可以是别的
	portReader->setBaudRate(QSerialPort::Baud115200);//设置波特率（波特率的含义自己查哈）
	portReader->setParity(QSerialPort::NoParity);//设置校验位，，自己查啥意思哈
	portReader->setDataBits(QSerialPort::Data8);//设置数据位8位，可以根据自己的情况更换
	portReader->setStopBits(QSerialPort::OneStop);//设置停止位
	portReader->setFlowControl(QSerialPort::NoFlowControl);//设置流量控制（我设置的是没有）
    portReader->clearError();//如果发生错误就清除错误
    portReader->clear();//清理缓冲区
	connect (portReader,SIGNAL(readyRead()),this,SLOT(showRecvData()));/*与我的槽函数链接显示接受信息*/


}


void Accelerometer::showRecvData()
{
	int t;
    QString tmp = "";
    data = portReader->readAll();
    tmp = data;

    if(tmp.mid(0,1) == "$")
    {
        //qDebug()<<"start msg";
        serial_frame.clear();

    }

     serial_frame.append(tmp);
     if(tmp.contains('*'))
        {
            //qDebug()<<"serial_frame:"<<serial_frame;
            QString x = serial_frame.section(',',1,1);

            QString y = serial_frame.section(',',2,2);
            QString z = serial_frame.section(',',3,3);
            //qDebug()<<"x="<<x.toShort()<<"    y="<<y.toShort()<<"    z="<<z.toShort();
             emit gDataComing(x.toShort(),y.toShort(),z.toShort());
        }
}
